{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第二章习题\n",
    "\n",
    "### 一、填空题\n",
    "\n",
    "1.列表的`sort()`方法没有返回值,或者说返回值为__原列表______."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.已知列表 `data=[1,2,30 4]`，那么`data[2:100]`的值为___[30，4]_____."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3.己知`x=3`和`y=5`,那么执行语句`x,y=y,x`之后，`y`的值为_____3___."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4．已知字典 `data= {'a;97, 'A' :65}`,那么`data.get('a', None)`的值为___97_____."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 二、判断题\n",
    "\n",
    "1.生成器表达式的计算结果是一个元组。`( 错   )`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2．包含列表的元组可以作为字典的“键”。`( 错   )`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3．包含列表的元组不可以作为集合的元素。`(  错  )`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4．列表的`rindex()`方法返回指定元素在列表中最后一次出现的位置。`(  错  )`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 三、编程题\n",
    "\n",
    "1.输入一个字符串，输出其中每个字符的出现次数。要求使用标准库`collotections`中的`Counter`类,请自行查阅相关用法。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入一个字符串：'axccdeg'\n"
     ]
    }
   ],
   "source": [
    "from collections import Counter\n",
    "text = input('请输入一个字符串：')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Counter({\"'\": 2, 'c': 2, 'a': 1, 'x': 1, 'd': 1, 'e': 1, 'g': 1})\n"
     ]
    }
   ],
   "source": [
    "frequencies = Counter(text)\n",
    "print(frequencies)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2．输入一个字符串,输出其中只出现了一次的字符及其下标。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入一个字符串：’aaavccggtt'\n"
     ]
    }
   ],
   "source": [
    "text = input('请输入一个字符串：')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[('’', 0), ('v', 4), (\"'\", 11)]\n"
     ]
    }
   ],
   "source": [
    "positions = [(ch,index)for index, ch in enumerate(text) if text.index(ch) == text.rindex(ch)]\n",
    "print(positions)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3．输入一个字符串,输出其中每个唯一字符最后一次出现的下标。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4．输入包含若干集合的列表，输出这些集合的并集。提示:使用`reduce()`函数和`operator`模块中的运算实现多个集合的并集。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{1, 2, 3, 4, 5, 6, 7}\n"
     ]
    }
   ],
   "source": [
    "a={1,2,3,4}\n",
    "b={3,5,6,7}\n",
    "c=a|b\n",
    "print(c)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "5．输入一个字符串,检查该字符串是否为回文（正着读和反看读都一样的字符串)，如果是就输出`Yes`，否则输出`No`。要求使用切片实现"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入一个字符串1234567\n"
     ]
    }
   ],
   "source": [
    "str1 = input('请输入一个字符串')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "No\n"
     ]
    }
   ],
   "source": [
    "str2 = str1[::-1]\n",
    "if str1 ==str2:\n",
    "    print('Yes')\n",
    "else:\n",
    "    print('No')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 课本上65页课后习题"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1:可迭代对象 2：ture 3:None 4：remove 5：[3,4,5,6] 6；大括号 键 值 键 7：items keys values 8:dict('a':'b') 9: b=a[0::3] 10:[5 fori in range(10)] \n",
    "11:不可以"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "12："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "13："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "15："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 出现的次数： 10\n",
      "1 出现的次数： 10\n",
      "2 出现的次数： 8\n",
      "3 出现的次数： 11\n",
      "4 出现的次数： 7\n",
      "5 出现的次数： 13\n",
      "6 出现的次数： 7\n",
      "7 出现的次数： 10\n",
      "8 出现的次数： 11\n",
      "9 出现的次数： 10\n",
      "10 出现的次数： 7\n",
      "11 出现的次数： 5\n",
      "12 出现的次数： 10\n",
      "13 出现的次数： 15\n",
      "14 出现的次数： 5\n",
      "15 出现的次数： 4\n",
      "16 出现的次数： 11\n",
      "17 出现的次数： 14\n",
      "18 出现的次数： 15\n",
      "19 出现的次数： 9\n",
      "20 出现的次数： 13\n",
      "21 出现的次数： 9\n",
      "22 出现的次数： 9\n",
      "23 出现的次数： 13\n",
      "24 出现的次数： 8\n",
      "25 出现的次数： 9\n",
      "26 出现的次数： 18\n",
      "27 出现的次数： 11\n",
      "28 出现的次数： 8\n",
      "29 出现的次数： 9\n",
      "30 出现的次数： 15\n",
      "31 出现的次数： 14\n",
      "32 出现的次数： 10\n",
      "33 出现的次数： 9\n",
      "34 出现的次数： 10\n",
      "35 出现的次数： 8\n",
      "36 出现的次数： 7\n",
      "37 出现的次数： 12\n",
      "38 出现的次数： 7\n",
      "39 出现的次数： 13\n",
      "40 出现的次数： 13\n",
      "41 出现的次数： 8\n",
      "42 出现的次数： 12\n",
      "43 出现的次数： 13\n",
      "44 出现的次数： 8\n",
      "45 出现的次数： 10\n",
      "46 出现的次数： 10\n",
      "47 出现的次数： 10\n",
      "48 出现的次数： 7\n",
      "49 出现的次数： 8\n",
      "50 出现的次数： 7\n",
      "51 出现的次数： 10\n",
      "52 出现的次数： 7\n",
      "53 出现的次数： 13\n",
      "54 出现的次数： 11\n",
      "55 出现的次数： 11\n",
      "56 出现的次数： 7\n",
      "57 出现的次数： 7\n",
      "58 出现的次数： 12\n",
      "59 出现的次数： 10\n",
      "60 出现的次数： 14\n",
      "61 出现的次数： 16\n",
      "62 出现的次数： 4\n",
      "63 出现的次数： 6\n",
      "64 出现的次数： 13\n",
      "65 出现的次数： 16\n",
      "66 出现的次数： 13\n",
      "67 出现的次数： 11\n",
      "68 出现的次数： 6\n",
      "69 出现的次数： 8\n",
      "70 出现的次数： 13\n",
      "71 出现的次数： 9\n",
      "72 出现的次数： 3\n",
      "73 出现的次数： 11\n",
      "74 出现的次数： 17\n",
      "75 出现的次数： 10\n",
      "76 出现的次数： 10\n",
      "77 出现的次数： 8\n",
      "78 出现的次数： 10\n",
      "79 出现的次数： 7\n",
      "80 出现的次数： 10\n",
      "81 出现的次数： 10\n",
      "82 出现的次数： 8\n",
      "83 出现的次数： 12\n",
      "84 出现的次数： 5\n",
      "85 出现的次数： 10\n",
      "86 出现的次数： 6\n",
      "87 出现的次数： 4\n",
      "88 出现的次数： 4\n",
      "89 出现的次数： 7\n",
      "90 出现的次数： 12\n",
      "91 出现的次数： 13\n",
      "92 出现的次数： 11\n",
      "93 出现的次数： 16\n",
      "94 出现的次数： 9\n",
      "95 出现的次数： 9\n",
      "96 出现的次数： 11\n",
      "97 出现的次数： 12\n",
      "98 出现的次数： 9\n",
      "99 出现的次数： 10\n",
      "100 出现的次数： 9\n"
     ]
    }
   ],
   "source": [
    "import random\n",
    "x=[random.randint(0,100) for i in range(1000)]\n",
    "st = set(x)\n",
    "for i in st:\n",
    "    print (i,\"出现的次数：\", x.count(i))\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "16:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入列表：[1223345]\n"
     ]
    }
   ],
   "source": [
    "a = eval(input(\"请输入列表：\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "17:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "input the name:Tom\n",
      "2\n"
     ]
    }
   ],
   "source": [
    "d = {'Mikey':'1','Tom':2,'Jerry':3,'Peter':4}\n",
    "a = input(\"input the name:\")\n",
    "print(d.get(a,\"not exist\"))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "18:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[57, 48, 11, 80, 78, 97, 9, 14, 87, 60, 64, 6, 71, 75, 26, 72, 82, 27, 10, 63]\n"
     ]
    }
   ],
   "source": [
    "import random\n",
    "t = [random.randint(0,100) for i in range(20)]\n",
    "print(t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[9, 11, 14, 48, 57, 60, 78, 80, 87, 97]\n"
     ]
    }
   ],
   "source": [
    "y = t[0:10]\n",
    "y.sort()\n",
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[82, 75, 72, 71, 64, 63, 27, 26, 10, 6]\n"
     ]
    }
   ],
   "source": [
    "x = t[10:20]\n",
    "x.sort(reverse=True)\n",
    "print(x)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "165px"
   },
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
